let express = require('express')
let app = express()
let path = require('path')

// 解析json数据
app.use(express.json())
// 解析表单数据
app.use(express.urlencoded({ extended: false }))
// 处理静态资源
app.use('/upload', express.static(path.join(__dirname, './upload')))

// 解析token
let { expressjwt: jwt } = require('express-jwt')
app.use(jwt({ secret: 'yan', algorithms: ["HS256"] }).unless({
    path: ['/en_user/login', '/en_user/register']
}))

// 自定义中间件（处理状态）
app.use((req, res, next)=>{
    res.fail = function(message){
        res.send({
            code: 1,
            message
        })
    }
    res.success = function(message, data = null){
        res.send({
            code: 0,
            message,
            data
        })
    }
    next()
})

// 用户模块
app.use('/en_user', require('./router/user'))
// 文章类别模块
app.use('/en_article_cate', require('./router/cate'))
// 文章信息模块
app.use('/en_article_info', require('./router/info'))
// 文件上传模块
app.use('/en_upload', require('./router/upload'))

// 自定义中间件（处理错误）
app.use((err, req, res, next)=>{
    if(err.name == 'UnauthorizedError'){
        res.send({
            code: 401
        })
    }else{
        res.send({
            code: 1,
            message: err
        })
    }
})

app.listen(80, _ => console.log(`Example app listening at http://localhost:80`))